package com.dxf.chepter10

import java.text.SimpleDateFormat
import java.util.Date

/**
 * Scala 运行在java虚拟机上,特点:
 *  1 轻松实现和丰富的java类库互联互通
 *  2 支持面向对象和函数式编程
 *  3 它写出的程序像动态语言一样简洁
 *  4 简洁,高效,令人愉快
 *
 *  编程范式 :
 *   1 所有编程范式中,面向对象编程是最大赢家
 *   2 其实面向对象编程不是一种严格意义上的范式编程,严格意义上编程范式为 : 命令式编程,函数式编程,逻辑式编程,面向对象是上述交叉产物
 *   3 在传统语言设计中,只有命令式编程得到强调,递归很少出现
 *
 */
object T134_使用递归方式编程Demo {

  def main(args: Array[String]): Unit = {
    //计算1-50的和
    //常规
    val now = new Date()
    val dataFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
    val date: String = dataFormat.format(now)
    println("执行前时间" + date)
    sum
    //val sum: BigInt = mx(1, 0)
    println("sum=" + sum)
    val now2 = new Date()
    val date2: String = dataFormat.format(now2)
    println("执行前时间" + date2)


  }

  def sum(): Unit = {
    var sum = BigInt(0)
    var num = BigInt(1)
    var maxVal = BigInt(99999999l)
    while (num <= maxVal) {
      sum += num
      num += 1
    }


  }

  def mx(num: BigInt, sum: BigInt): BigInt = {
    if (num <= 99999999l){
      mx(num + 1, sum + num)
    }  else sum

  }

}
